package com.lc.communication.vo;

import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Map;

/**
 * @author liuhf17
 * @version 1.0.0
 * @ClassName RequrstVo.java
 * @Description 请求信息
 * @createTime 2024年06月11日 18:01:00
 */
@Data
public class RequestVo implements Serializable {
    /**
     * 序列化
     */
    @JsonIgnore
    private static final long serialVersionUID = 1L;

    /**
     * 请求客户端名称
     */
    private String clientName;
    private String clientUuid;

    /**
     * 请求类型
     */
    private String type;

    /**
     * 请求id
     */
    private String id;

    /**
     * 请求地址
     */
    private String url;

    /**
     * 请求方法 GET POST 等
     */
    private String method;

    /**
     * 请求参数
     */
    private String body;

    private Boolean handleFlag = false;

    /**
     * 返回参数
     */
    private String resBody;

    private String error;


    private String remark;

    /**
     * 请求头
     */
    private Map<String, String> header;

    private Map<String, Object> params;


    /*public ByteBuf toRequestVo() {
        ByteBuf byteBuf = Unpooled.copiedBuffer(JSONUtil.toJsonStr(this), CharsetUtil.UTF_8);
        return byteBuf;
    }*/

    public MessageProtocol toRequestVo() {
        String jsonStr = JSONUtil.toJsonStr(this);
        byte[] content = jsonStr.getBytes(StandardCharsets.UTF_8);
        int length = jsonStr.getBytes(StandardCharsets.UTF_8).length;
        MessageProtocol messageProtocol =new MessageProtocol();
        messageProtocol.setLen(length);
        messageProtocol.setContent(content);
        return messageProtocol;
    }
}
